/** @odoo-module */
import { Component } from "@odoo/owl"

export class Todo extends Component {
  
  onClick(ev) {
    // this.props.done = !this.props.done 只改变了done的属性，但是子组件的页面渲染没有随之变化。因此在父组件中直接更改参数属性没有意义
    this.props.toggleState(this.props.id);
  }

  onRemove() {
    this.props.removeTodo(this.props.id)
  }
}

Todo.template = "todo.Todo"
// 在类中提前定义好props中的内容，那调用类时，需要传递所有的props，不能缺少，也不能多
Todo.props = {
  id: { type: Number },
  descriptionA: { type: String },
  done: { type: Boolean },
  toggleState: { type: Function }, // optional: true表示这个属性是可选的。目前传递子组件使用.bind无法传递toggleState，不知道为什么 --已找出问题原因：在其他地方也调用了<Todo />，但是没有传该参数，因此系统总是报错。
  removeTodo: { type: Function }
}